{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "dc052c65",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_5038/2607063007.py:11: RuntimeWarning: invalid value encountered in double_scalars\n",
      "  f[i] = x[i] / (math.exp(x[i]) - 1)\n",
      "/tmp/ipykernel_5038/2607063007.py:12: RuntimeWarning: divide by zero encountered in double_scalars\n",
      "  A[i] = (3+x[i])/x[i]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import math\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "N = 1000\n",
    "\n",
    "x = np.linspace(0, 1, num = N, endpoint=True)\n",
    "f = np.zeros(N)\n",
    "A = np.zeros(N)\n",
    "for i in range(N):\n",
    "    f[i] = x[i] / (math.exp(x[i]) - 1)\n",
    "    A[i] = (3+x[i])/x[i]\n",
    "\n",
    "plt.plot(x, f, '--')\n",
    "plt.plot(x, A, 'r--')\n",
    "plt.legend(['f', 'A'], loc='best')\n",
    "plt.ylim(0,30)  \n",
    "plt.show()\n",
    "#plt.plot(xp, yp, 'o')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2ff01e6e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f9cd08b8640>]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 100\n",
    "n = 5\n",
    "x = np.linspace(0, np.pi, N)\n",
    "xp = np.linspace(0, np.pi, n)\n",
    "y = np.sin(x)\n",
    "yp = np.sin(xp)\n",
    "z = np.zeros(N)\n",
    "zp = np.zeros(n)\n",
    "o = np.ones(N)\n",
    "op = np.ones(n)\n",
    "\n",
    "plt.plot(x, y, 'r--')\n",
    "plt.plot(xp, yp, 'o')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1e4bd97c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
